import ml.combust.mleap.runtime.frame.Row;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import com.merit.mleappredict.MleapPredictMain;
/**
 * @author meritdata
 * Mleap同步服务本地化运行调用示例
 * 服务包结构：
 * 		--tempo_mleap_all_pipeline.zip  mleap模型
 * 		--MleapLocalClientTest.java     调用示例
 *		--offline_licence.dat           校验文件
 * 
 * 将下载的服务包解压到存放服务文件的地方（即初始化的根目录文件路径）
 * 然后设置示例代码中的资源路径为解压的路径
 * 类型必须正确，否则反序列化会报错
 * 校验文件名称不能改变，否则会报错
 */
public class MleapLocalClientTest {

	public static void main(String[] args) {
		List<Map<String, String>> rows = new ArrayList<>();
		// 1.添加字段名称及字段类型，key为字段名称，value为字段类型
		java.util.Map<String, Object> filedNameAndType = new java.util.LinkedHashMap<>();
		<#list columns as col>
			filedNameAndType.put("${col.name}", "${col.type}");
		</#list>
		// 2.添加数据，根据字段类型添加数据
        List<List<Object>>  dataList = new ArrayList<>();
		List<Object> data = new ArrayList<>();
		<#list columns as col>
			<#if col.type == 'INT'>
				data.add(1);
			<#elseif col.type == 'FLOAT'>
				data.add(Float.valueOf("1.1"));
			<#elseif col.type == 'DOUBLE'>
				data.add(1.0);
			<#elseif col.type == 'LONG'>
				data.add(Long.valueOf("12"));
			<#elseif col.type == 'BOOLEAN'>
				data.put(true);
			<#else>
				data.add("label");
			</#if>
		</#list>
		dataList.add(data);
		//模型路径
		String mleapModelPath = "C:\\Users\\merit\\Downloads\\780773f0effe4b59a789ee216b4329d2\\tempo_mleap_all_pipeline.zip";
		//调用算法
        Row[]  predictRows = MleapPredictMain.doPredictMain(filedNameAndType, dataList, mleapModelPath);
		//输出数据
		System.out.println("开始输出数据");
		for(Row predictRow:predictRows){
		System.out.println(predictRow.toString());
		}
		System.out.println("输出数据结束");
	}

}
